home *** CD-ROM | disk | FTP | other *** search
/ EuroCD 3 / EuroCD 3.iso / Miscellaneous / StopWatch / StopWatch.doc < prev    next >
Text File  |  1998-06-24  |  29KB  |  583 lines

  1.  
  2.                                S t o p W a t c h
  3.  
  4.                                   Version 3.0
  5.                                December 06, 1991
  6.  
  7.                                       by
  8.                                Christian Danner
  9.  
  10.  
  11.                                   M A N U A L
  12.                                   ===========
  13.  
  14.                                   PRINCIPLES
  15.  
  16. "StopWatch" is  a stop  watch application, which makes a programmable precision
  17. of more than the by the  system  time  offered  1/50  second  possible  (with a
  18. standard Amiga 500/1000/2000 e.g. a resolution of one millisecond occupies only
  19. little processor time,  with  a  turbo  board  this  value  can  furthermore be
  20. increased).
  21.  
  22. The program  reacts on  the status of the joystick button. It gets its timebase
  23. from the CIA B timer  A  and  in  the  last  resort  from  the  7.16 MHz system
  24. frequency  by  interrupt  programming.  After  many - by reason of inaccuracy -
  25. frustrating experiments with the CIA A timer A, which ought to be  the only one
  26. available for  free access  according to the Addison Wesley Hardware Manual and
  27. other publications, I  used  this  pretendedly  by  EXEC  continuously occupied
  28. timer. Till  now no  incompatibilities occurred. The interrupt priority level 6
  29. prevents  the  timer  program  from  being  overrun  by  other  interrupts  and
  30. guarantees a high degree of precision.
  31.  
  32. I tested  the program on different conditions. During car races I'm using it in
  33. the background, where the input data come from a hardware interface producing a
  34. short circuit  to the  according joystick  port wires when the time measurement
  35. beam  of  a  light  barrier  is  interrupted.  At  the  same  time  a Superbase
  36. application is  running on  this machine,  communicating with another Amiga via
  37. the serial  device  for  displaying  the  score  lists  and  serving  a printer
  38. connected to  the parallel  port. In  comparison with a professional stop watch
  39. running simultaneously,  I couldn't  find out  any difference  in the resulting
  40. times. Corresponding  to my  tests, normal Intuition interfacing, file handling
  41. etc. might not corrupt  the timer.  So far  I only  found one  program, a sound
  42. generator, which caused deviations.
  43.  
  44.  
  45.                                    FEATURES
  46.  
  47. The program  displays the  single lap  times and the total times in a window on
  48. the Workbench screen. You can determine  the number  of laps  per race  and the
  49. period of  time, within  which no  incoming signal  is processed  after a valid
  50. event. In an uncomplicated  manner  you  can  adjust  the  measurement  on your
  51. equipment (I  have not  yet tested, whether it's necessary or not, but it might
  52. be required depending on  the  quartz  base).  Optionally  for  the  purpose of
  53. transmitting the results to other applications, the data can be saved to a disk
  54. file in ASCII-format. You can specify the filename freely, a  selection between
  55. only saving  total times  or saving  all lap-times is possible, just as you can
  56. choose whether the file only has to contain the last time or a time  list shall
  57. be generated. Also an ARexx-port for remote control with parameter modification
  58. and a more comfortable result handling  is  implemented.  With  Version  3.0 an
  59. additional screen  can be  opened as  a time display e.g. in combination with a
  60. genlock interface. Text and primitive graphics  can  also  be  written  to this
  61. screen via Rexx-commands.
  62.  
  63.  
  64.                                    HARDWARE
  65.  
  66. As I  explained earlier,  the program  scans the status of the joystick button,
  67. which is a simple switch connecting Pin 6 with Pin 8 of the joystick  plug when
  68. it is  closed. Pressing  the button  is a  valid event  for the  timer. You can
  69. trigger the timer manually or by an interface,  which "presses  the button" for
  70. you  by  a  switch  (mechanic  or  optoelectronic),  e.g. controlled by a light
  71. barrier.
  72.  
  73. If the signal to detect is active only for a  period of  time shorter  than the
  74. interval  between  two  scans  of  the  input it might be ignored by the timer.
  75. Therefore you have to delay the  release  of  the  switch  (with  an electronic
  76. circuit) for a reliable measurement of such signals.
  77.  
  78.  
  79.                                   CALIBRATION
  80.  
  81. First  you  have  to  select  the  resolution  of  the  timer,  which means the
  82. frequency of timer increase (e.g. 1000 for a resolution of 1/1000 second). This
  83. value should  not be  excessively high,  because you  can slow  down the system
  84. rapidly by the timer interrupts.
  85.  
  86. Now  you   have   to   tune   the   timer   by   changing   the  VIACYCL-Values
  87. ("VIA-Cycles/Timercycle" in  the Workbench window), so that the resulting times
  88. are mostly valid in comparison  with  an  already  calibrated  stopwatch. Doing
  89. this, the "Correction-factor" has to be 0.
  90.  
  91. For a  fine adjustment  a correction factor can be defined, which is equivalent
  92. to the time deviation divided by the total period of time where it occurred. To
  93. be  able  to  supervise  this  adjustment,  the  resulting  correction value is
  94. displayed in terms of milliseconds with  every measurement  in the  last of the
  95. three columns.
  96.  
  97.  
  98.                                   PARAMETERS
  99.  
  100. All the  parameters can  be transmitted to the program when starting it. I have
  101. implemented certain commands  for  the  startup  from  the  CLI,  ToolTypes for
  102. running  "StopWatch"  from  the  WorkBench  and  Rexx-commands to influence the
  103. already started application.
  104.  
  105. ToolType             CLI   PrgWindow        Explanation
  106. ---------------------------------------------------------------------------
  107. General:
  108. --------
  109. LAPS=number          -l..  Number of Laps   number of laps per race
  110. REFRACT=number       -r..  Refract.-Time    refractory time after a pass
  111. CYCLSEC=number       -s..  Resolution       number of timercycles per second
  112. VIACYCL=number       -v..  VIA-Cycles / Ti. coarse tuning of the timer
  113. CORRECT= number      -c..  Correctionfactor timer fine tuning factor [* 1E-6]
  114. DISPLAY=number       -d..  not implemented  number of result lines in display
  115. BEEP=ON              -b    not implemented  display beep after timer events
  116. FILE=path/filename   -f..  not implemented  filename for saving the results
  117. APPEND=ON            -a    not implemented  generate result-list
  118. PASS=ON              -p    not implemented  save also lap-times
  119.  
  120. Display Screen:
  121. ---------------
  122. SCREEN=number        -o..  not implemented  display screen depth
  123. WIDTH=number         -w..  not implemented                 width
  124. HEIGHT=number        -h..  not implemented                 height
  125. COLORS=hexnumbers    -k..  not implemented                 colors
  126. ACTTIDIG=number      -(..  not implemented  actual   time   digits   after  the
  127.                                             decimal point
  128. TOTTIDIG=number      -)..  not implemented  total /  lap time  digits after the
  129.                                             decimal point
  130. TIFGCOLOR=number     -e..  not implemented  time display color of characters
  131. TIBGCOLOR=number     -g..  not implemented                        background
  132. TIMEFNAME=fontname   -n..  not implemented  time font name (disk font !)
  133. TIMEFSIZE=number     -z..  not implemented            size
  134. TEXTFNAME=fontname   -m..  not implemented  text font name (disk font !)
  135. TEXTFSIZE=number     -q..  not implemented            size
  136. TOTLEFT=number       -t..  not implemented  coordinate time total  left
  137. TOTUP=number         -u..  not implemented                         up
  138. LAPLEFT=number       -i..  not implemented                  lap    left
  139. LAPUP=number         -j..  not implemented                         up
  140. ACTLEFT=number       -x..  not implemented                  actual left
  141. ACTUP=number         -y..  not implemented                         up
  142.  
  143. Parameter           Valid data range                                 Preset
  144. ---------------------------------------------------------------------------
  145. LAPS                    1 .. 99999                                        1
  146. REFRACT                 1 .. 99999                                      500
  147. CYCLSEC                 1 .. 50000                                     1000
  148. CORRECT             -9999 .. 99999                                     -525
  149. VIACYCL                50 .. 50000                                      708
  150. DISPLAY                 2 ..    12                                        5
  151. BEEP                  OFF ..    ON                                      OFF
  152. APPEND                OFF ..    ON                                      OFF
  153. PASS                  OFF ..    ON                                      OFF
  154. SCREEN                  1 ..     4                        no display screen
  155. WIDTH                 640 ..   767                                      640
  156. HEIGHT                400 ..   766                                      400
  157. COLORS                                          66AFFF000D000D000BDD0D0B0DB
  158. ACTTIDIG                0 ..     1                                        1
  159. TOTTIDIG                0 ..     3                                        3
  160. TIFGCOLOR               0 .. number of colors - 1 (1/3/7/15)              1
  161. TIBGCOLOR               0 .. number of colors - 1 (1/3/7/15)              0
  162. ~LEFT                   0 .. WIDTH  - TextWidth( "00:00:00.000")        150
  163. ~UP                     0 .. HEIGHT - TextHeight
  164. ACTUP                                                                   150
  165. LAPUP                                                                   180
  166. TOTUP                                                                   210
  167. Time-/Text-Font                                            no font selected
  168.  
  169. Examples:
  170. ---------
  171. ~FNAME              RUBY (extension ".font" not allowed)
  172. ~FSIZE              15
  173. COLORS              00AFFF000C00444DD00D000A...
  174.                     \_/
  175.                     rgb color 0 = blue (hexadecimal Red/Green/Blue-values 0..F)
  176.                        \_/
  177.                        rgb color 1 = white
  178.                           \_/
  179.                           rgb color 2 = black
  180.                              \_/
  181.                              rgb color 3 = red
  182.                                 ...
  183.  
  184. Command line for CLI-Startup:
  185.          StopWatch -l2 -r500 -s1000 -v708 -c-525 -d5 -b -fCLIPS:TimeList  -p -a
  186.                    -o3 -w704 -h460 -k44afff000c00 -x495 -y350 -i250 -j350 -t495
  187.                    -u350 -nstopwatch -z26 -e1 -g2
  188.  
  189. To modify the parameters in the Workbench window you first have to click on the
  190. "STATE"-button  or  to  select  the  pulldown menu "Project/Parameters". Then a
  191. modification of the values in the parameter field is possible.  When done click
  192. on the  same button  again. This  sets the  new values  and zeroes the timer. A
  193. reset also can be processed simply  by selecting  the according  pulldown menu.
  194. The state  of the  system is displayed in an area above the "STATE"-Button. For
  195. preventing the timer from  analyzing uninteresting  signals a  locking function
  196. can be  activated by  pressing the  "LOCK"-button or  sending the corresponding
  197. Rexx command.  You return  to the  normal timer  action by  pressing the button
  198. again or using the Rexx command "UNLOCK".
  199.  
  200. Notes:   Even  if  the  continuous  time  display  skips  some  values and runs
  201.          irregular  (not  enough  system  preformance  for  the  defined  timer
  202.          settings)  the  resulting  times  are valid! Time measurement and time
  203.          display are different, parallel running processes.
  204.  
  205.          A VIACYCL-value < 150 may freeze a system without accelerator  card by
  206.          occupancy of a great amount of calculating time for handling the timer
  207.          interrupts! You could check  this with  a performance  monitor. If you
  208.          intend to  use this program only as a Rexx-controlled display unit set
  209.          VIACYCL to its maximum value (10000)  for the  least possible  loss of
  210.          system preformance.
  211.  
  212.          To protect  the timer  from being  triggered repeatedly by an instable
  213.          signal when the joystick button is pressed or released, it is possible
  214.          to define  a period of time, during which no check of the input signal
  215.          is performed after an event. E.g. in car races with  longer refractory
  216.          times this  feature can also be useful to prevent the timer started by
  217.          the front wheels from being stopped by the rear wheels.
  218.          The strategy: 1. After a valid event (button  pressed  =  signal  on =
  219.                           pins connected)  the input is scanned for the release
  220.                           of the button.
  221.                        2. At that moment the refractory time,  which determines
  222.                           the period,  during which  a signal is ignored by the
  223.                           timer, is set to  the user-defined  REFRACT-value and
  224.                           counted down.
  225.                        3. If  there  is  another  event  within  this time, the
  226.                           program ignores it and  repeats  the  whole procedure
  227.                           beginning  at  1  (scanning  for  the  release of the
  228.                           button...).
  229.                           This loop is performed  until no  event occurs during
  230.                           the time of delay.
  231.                        4. Subsequently the timer is active for the next event.
  232.          The  power  led  indicates  the  state  of  this feature. If it shines
  233.          brighter, the  input is  inactive. For  a premature  activation with a
  234.          running  timer  you  have  to  lock  /  unlock the input. A reset also
  235.          activates the input, but the actually measured time is lost.
  236.  
  237.          The format of the  actual  and  total  /  lap  time  displayed  in the
  238.          separate  screen  is  shortened  depending  on  the defined TIMEDIGITS
  239.          values:            3         "00:00:00.000"
  240.                             2         "00:00:00.00"
  241.                             1         "00:00:00.0"
  242.                             0         "00:00:00"
  243.          The time strings transmitted to the stopwatch window,  the output file
  244.          and Rexx are never truncated to make the further processing easier.
  245.  
  246.          When  using  proportional  fonts  for  time display all digits and the
  247.          characters " ", "." and ":"  must  have  the  same  width  for correct
  248.          output and  deletion. If  necessary modify  the respective font with a
  249.          font-editor.
  250.  
  251.          The display screen  depth  determines  the  maximum  number  of screen
  252.          colors. Depth  1/2/3/4 means  2/4/8/16 colors  (colors = depth^2). The
  253.          time needed for text-  and graphics  output increases  with the screen
  254.          depth, so  avoid unused bitplanes! Toggle between the "StopWatch"- and
  255.          the Workbench screen with the keys <Amiga>-N and <Amiga>-M.
  256.  
  257. Caution: On my  Amiga 2000B PAL  with  Agnus 8361 / Denise 8362  some baselines
  258.          (below  line  455)  are  not  shown  on  a  screen  with  the depth of
  259.          4 bitplanes, but they are present and can be dumped to  the printer by
  260.          the use  of a  screen grabber.  Maybe this fault does no longer appear
  261.          in combination with the ECS-Chipset and  1 MB chip  memory, but  I was
  262.          not yet able to check this hardware.
  263.  
  264.  
  265.                                  REXX-COMMANDS
  266.  
  267. The ARexx-port of "StopWatch" can be accessed via its name "RexxStopWatch".
  268.  
  269. So far the following commands are implemented:
  270.  
  271. General:
  272. --------
  273.  
  274. CLOSE          ends the program
  275.                  parameters: none
  276.  
  277. LOCKEXIT       forbids ending of the program (except via REXX)
  278.                  parameters: none
  279.                  returncode: warn:  LOCKEXIT already active
  280.  
  281. UNLOCKEXIT     resets the LOCKEXIT-command
  282.                  parameters: none
  283.                  returncode: warn:  LOCKEXIT not active
  284.  
  285. RESET          resets the timer
  286.                  parameters: none
  287.  
  288. LOCKTIMER      disconnects the timer from the joystick port
  289.                  parameters: none
  290.  
  291. UNLOCKTIMER    resets the LOCKTIMER-command
  292.                  parameters: none
  293.  
  294. LAPS           number of laps per race
  295.                  parameters: <number>
  296.                  returncode: error: no parameter
  297.                                     parameter out of range
  298.  
  299. REFRACT        refractory (delay) time after a pass
  300.                  parameters: <number>
  301.                  returncode: see "LAPS"
  302.  
  303. CYCLSEC        number of timercycles per second
  304.                  parameters: <number>
  305.                  returncode: see "LAPS"
  306.  
  307. VIACYCL        coarse tuning of the timer
  308.                  parameters: <number>
  309.                  returncode: see "LAPS"
  310.  
  311. CORRECT        timer fine tuning factor [* 1E-6]
  312.                  parameters: < number>
  313.                  returncode: see "LAPS"
  314.  
  315. BEEP           display beep after timer events
  316.                  parameters: [ON]/[OFF]
  317.                  returncode: error: no / wrong parameter
  318.  
  319. NEXTTOTAL      returns the next total time
  320.                  parameters: none
  321.                  format of result:  "00:00:00.000"
  322.                                     (depending on "CYCLSEC" filled with "0")
  323.                  returncode: warn:  timer overflow (> "99:59:59.999")
  324.                              error: rexx result handling disabled
  325.                                       (no "OPTIONS RESULTS" command)
  326.  
  327. NEXTLAP        returns the next additive lap time
  328.                  parameters: none
  329.                  format of result:  see "NEXTTOTAL"
  330.                  returncode: see "NEXTTOTAL"
  331.  
  332. NEXTSINGLE     returns the next single lap time
  333.                  parameters: none
  334.                  format of result:  see "NEXTTOTAL"
  335.                  returncode: see "NEXTTOTAL"
  336.  
  337. PREVTOTAL      returns the previous total time
  338.                  parameters: none
  339.                  format of result:  see "NEXTTOTAL"
  340.                  returncode: see "NEXTTOTAL"
  341.  
  342. PREVLAP        returns the previous additive lap time
  343.                  parameters: none
  344.                  format of result:  see "NEXTTOTAL"
  345.                  returncode: see "NEXTTOTAL"
  346.  
  347. PREVSINGLE     returns the previous single lap time
  348.                  parameters: none
  349.                  format of result:  see "NEXTTOTAL"
  350.                  returncode: see "NEXTTOTAL"
  351.  
  352. Display Screen:
  353. ---------------
  354.  
  355. SCREENADDRESS  returns the pointer to the display screen structure for external
  356.                screen manipulations (before using this feature  you should call
  357.                the LOCKEXIT-command  to avoid  a closure of the screen from the
  358.                workbench, which might cause a system crash)
  359.                  parameters: none
  360.                  result:     <address in decimal text format>
  361.                  returncode: warn:  timer overflow
  362.                              error: rexx result handling disabled
  363.                                       (no "OPTIONS RESULTS" command)
  364.  
  365. TIMEDIGITS     changes the number of  digits following  the decimal  point when
  366.                the actual and total (lap) time is displayed
  367.                  parameters: <digits actual time> <digits total / lap time>
  368.                  returncode: see "LAPS"
  369.  
  370. TIMEPOS        changes position of actual, total and lap time
  371.                  parameters: <xact> <yact> <xtot> <ytot> <xlap> <ylap>
  372.                  returncode: error: position(s) out of screen range
  373.                                       -> no change
  374.                              warn:  text too large for correct display
  375.                                       -> position(s) shifted
  376.  
  377. TIMECOLOR      defines foreground- and background color of time display font
  378.                  parameters: <foreground color> <background color>
  379.                  returncode: error: no / wrong parameters
  380.  
  381. TIMEFONT       changes the  time display  font. It also clears the locations of
  382.                the actual, lap and total time!
  383.                  parameters: <name> <size>
  384.                  returncode: error: no / wrong parameters
  385.                                     diskfont not available
  386.  
  387. TEXTFONT       changes the text display font used by the ~TEXT~-commands
  388.                  parameters: <name> <size>
  389.                  returncode: see "TIMEFONT"
  390.  
  391. BOXO           draws an opaque filled box
  392.                  parameters: <left> <up> <width> <height> <color>
  393.                  returncode: error: no / wrong parameters
  394.                                     parameters out of range
  395.                                       (object has to fit into the screen)
  396.  
  397. BOXT           draws a transparent filled  box  (by  alternation  of  pixels in
  398.                foreground- and background color)
  399.                  parameters: <left> <up> <width> <height> <color>
  400.                  returncode: see "BOXO"
  401.  
  402. DRAW           draws a dot, line or polygon
  403.                  parameters: for dot      <color> <x-pos.> <y-pos.>
  404.                              for line     <color> <x1> <y1> <x2> <y2>
  405.                              for polygon  <color> <x1> <y1> <x2> <y2> <x3> ..
  406.                  returncode: see "BOXO"
  407.  
  408. FILL           fills  an  area  with  a  plain color beginning at the specified
  409.                position, delimited by the determined outline color
  410.                  parameters: <x-pos.> <y-pos.> <color>
  411.                  returncode: see "BOXO"
  412.  
  413. ELLIPSE        draws an opaque filled ellipse
  414.                  parameters: <center x> <ct. y> <radius x> <rd. y> <color>
  415.                  returncode: see "BOXO"
  416.  
  417. LOGO           displays copyright logo
  418.                  parameters: <left> <up>
  419.                  returncode: see "BOXO"
  420.  
  421. CLRLOGO        clears copyright logo
  422.                  parameters: <left> <up>
  423.                  returncode: see "BOXO"
  424.  
  425. TEXTR          text output from the defined position to the right
  426.                  parameters: <left> <up> <textcolor> <backgroundcolor> <text>
  427.                  returncode: see "BOXO"
  428.                              if  necessary  text  is  shortened  without  error
  429.                              message !
  430.  
  431. TEXTL          text output from the defined position to the left
  432.                  parameters: <left> <up> <textcolor> <backgroundcolor> <text>
  433.                  returncode: see "TEXTR"
  434.  
  435. TEXTC          text output centered horizontal relative to the position
  436.                  parameters: <left> <up> <textcolor> <backgroundcolor> <text>
  437.                  returncode: see "TEXTR"
  438.  
  439. CLRTEXTR       clears text written with TEXTR
  440.                  parameters: <left> <up> <text>
  441.                  returncode: see "TEXTR"
  442.  
  443. CLRTEXTL       clears text written with TEXTL
  444.                  parameters: <left> <up> <text>
  445.                  returncode: see "TEXTR"
  446.  
  447. CLRTEXTC       clears text written with TEXTC
  448.                  parameters: <left> <up> <text>
  449.                  returncode: see "TEXTR"
  450.  
  451. SHADOW         sets shadowtext coordinates
  452.                (in pixels relative to normal text position = 0 / 0)
  453.                  parameters: <x-pos shadow 1> <y-pos shadow 1> <x2> <y2> ..
  454.                  preset: "-1 -1 0 -1 1 -1 -1 0 1 0 -1 1 0 1 1 1"
  455.                  restriction: max. 30 shadows (60 x/y-values) allowed
  456.                  returncode: see "BOXO"
  457.  
  458. TEXTRS         text output to the right with shadows
  459.                  parameters: <left> <up> <textcolor> <shadowcolor> <text>
  460.                  returncode: see "TEXTR"
  461.  
  462. TEXTLS         text output to the left with shadows
  463.                  parameters: <left> <up> <textcolor> <shadowcolor> <text>
  464.                  returncode: see "TEXTR"
  465.  
  466. TEXTCS         text output centered horizontal with shadows
  467.                  parameters: <left> <up> <textcolor> <shadowcolor> <text>
  468.                  returncode: see "TEXTR"
  469.  
  470. CLRTEXTRS      clears text written with TEXTRS
  471.                  parameters: <left> <up> <text>
  472.                  returncode: see "TEXTR"
  473.  
  474. CLRTEXTLS      clears text written with TEXTLS
  475.                  parameters: <left> <up> <text>
  476.                  returncode: see "TEXTR"
  477.  
  478. CLRTEXTCS      clears text written with TEXTCS
  479.                  parameters: <left> <up> <text>
  480.                  returncode: see "TEXTR"
  481.  
  482. The ARexx returncode values are 0 for OK, 5 for WARN and 10 for ERROR.
  483.  
  484. The  valid  data  range  for  the  commands LAPS, REFRACT, CYCLSEC, VIACYCL and
  485. CORRECT is already described above.
  486.  
  487. For a correct sizing  of the  CLRTEXT~-commands you  have to  activate the same
  488. text display  font you used for the corresponding TEXT~-command which has to be
  489. wiped out. In the same manner for clearing a text  displayed with  a shadowtext
  490. command (CLRTEXT~S) the shadows must be set to their correct values.
  491.  
  492. For  further  details  I  refer  to the example program "StopWatch.rexx", which
  493. comes along with this package.
  494.  
  495. The abortion of NEXTTOTAL, NEXTLAP or  NEXTSINGLE with  "Abort RexxCmd" returns
  496. an error  level 10  in RC.  If the "OPTIONS RESULTS" command is not active when
  497. commands expect a return value (~TOTAL, ~LAP, ~SINGLE, SCREENADDRESS), an error
  498. level 10 is returned.
  499.  
  500.  
  501.                                 IMPLEMENTATION
  502.  
  503. Most of  the code is written in M2Amiga Modula 2 V3.1d (really antique version)
  504. by AMSoft. I have  implemented the  interrupt routines  in assembler  using the
  505. Aztec C 3.6a Assembler.  Thanks to CygnusSoft for their excellent editor, which
  506. helped me to keep the source together.
  507.  
  508.  
  509.                                     HISTORY
  510.  
  511. V 2.0  - First released version of  the  program,  which  already  supports the
  512.          different Workbench fonts of AmigaDOS 2.0.
  513.  
  514. V 3.0  - Continuous time display in the program window.
  515.        - New  timer  REXX-Commands:  PREVTOTAL,  PREVLAP, PREVSINGLE, LOCKEXIT,
  516.          UNLOCKEXIT, LOCKTIMER, UNLOCKTIMER, BEEP.
  517.        - REXX-Commands GET... renamed to NEXT... !!
  518.        - Optional display-beep on all screens with the timer  event. Activation
  519.          by the CLI-Option -b and the ToolType BEEP=ON.
  520.        - Correct 3D-Display also with the color palette of AmigaDOS 2.0.
  521.        - Assembly routines now coded and optimized with the Aztec Assembler, no
  522.          longer with the Data Becker Profimat-Assembler.
  523.        - REXX interface improved (unknown commands are sent back  to the server
  524.          and don't cause Guru Meditations any longer..).
  525.        - Display Screen for genlock interaction.
  526.          Features:  - Up to  16-color screen.  Number of  bit-planes and colors
  527.                       definable by the user.
  528.                     - Variable screen dimensions. Overscan supported.
  529.                     - Free font selection. Color fonts in  combination with the
  530.                       "ColorText"   program   from  the  Calligrapher  software
  531.                       package possible.
  532.                     - Position of actual, lap- and total time not fixed.
  533.                     - Text- and  graphics  output  via  Rexx-commands (TIMEPOS,
  534.                       TIMECOLOR, TIMEFONT, TEXTFONT, BOXO, BOXT, ELLIPSE, DRAW,
  535.                       FILL, TEXTR, TEXTL, TEXTC,  CLRTEXTR, CLRTEXTL, CLRTEXTC,
  536.                       SHADOW,  TEXTRS,  TEXTLS,  TEXTCS,  CLRTEXTRS, CLRTEXTLS,
  537.                       CLRTEXTCS,  LOGO,  CLRLOGO).  SCREENADDRESS  makes screen
  538.                       manipulations by external programs possible.
  539.  
  540. V 3.0S - Shareware  version  of  StopWatch  V3.0.  The sometimes on the display
  541.          screen appearing "Danner Timing"-logo  reminds you  to order  the full
  542.          version and pay your registration fee.
  543.          The package consists of:
  544.             StopWatch       Version 3.0S of the executable file
  545.             StopWatch.doc   the user manual
  546.             StopWatch.rexx  a demo file for ARexx-interfacing
  547.             StopWatch.pic   a  snapshot  of  the StopWatch screen while running
  548.                             StopWatch.rexx (for those who do not yet use ARexx)
  549.  
  550.  
  551.                                    COPYRIGHT
  552.  
  553. Copyright (c) 1991 by Christian Danner. All rights reserved.
  554.  
  555. The author is not responsible for any damage caused by  the use  of the program
  556. "StopWatch".
  557.  
  558. The shareware  versions 2.0  and 3.0S of this program may only be redistributed
  559. on non-commercial base without changes together with their documentation files.
  560. They must  not be  distributed on  commercial base  without my explicit written
  561. permission.  If  you  use  these  versions  more  frequently,  especially  in a
  562. professional manner, I won't refuse a little fee.
  563.  
  564. Version  3.0,  which  is  neither  in  the public domain, nor shareware, can be
  565. obtained via my  address  for  the  amount  of  50 US$  or  80 DM  (only bills)
  566. including airmail  postage and registration. Already registered users only have
  567. to send me 5 US$  or  10 DM  for  forwarding  expenses  to  receive  the latest
  568. version. Because  of the external generation of the system frequency in genlock
  569. mode I can not  guarantee a  correct time  measurement in  combination with all
  570. kinds of  genlock interfaces.  So please  check your  hardware with  one of the
  571. shareware versions of this program before ordering.
  572.  
  573. For further improvements please let me know of  all the  bugs you  find and all
  574. the options  you miss. Every attempt will be made to solve your problems within
  575. a reasonable amount of time.
  576.  
  577.  
  578. My address:    Christian Danner
  579.                Rißkopfstraße 10
  580.                8106 Oberau
  581.                Germany
  582.                Phone: 08824/8122
  583.